home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / go / info / article < prev    next >
Encoding:
Text File  |  1993-06-20  |  68.1 KB  |  1,185 lines

  1. Title:     Smart Game Board and Go Explorer : a study in software and
  2.            knowledge engineering. (technical)
  3.  
  4. Author:    Kierulf, Ander; Chen, Ken; Nievergelt, Jurg.
  5.  
  6. Journal:   Communications of the ACM  Feb 1990 v33 n2 p152(15)
  7.            * Full Text COPYRIGHT Association for Computing Machinery 1990.
  8.  
  9.  
  10. SOFTWARE ENGINEERING
  11.  
  12. AND KNOWLEDGE ENGINEERING
  13.  
  14. Software engineering is an established discipline that has accumulated and
  15. codified more than two decades worth of know-how.  Knowledge engineering, on
  16. the other hand, is an emerging discipline with lots of issues but, at least
  17. so far, little structure.  Despite its lack of maturity the practice of
  18. knowledge engineering promises to have a noticeable impact on software
  19. engineering doctrine.  The experimental nature of knowledge engineering goes
  20. hand-in-hand with a style of software development best characterized as
  21. 'exploratory,' which has not been much studied in traditional software
  22. engineering.
  23.  
  24. Exploratory Software Development:
  25.  
  26. Uncertain Resources, Open-Ended Goals
  27.  
  28. The vast literature on software engineering discusses, almost exclusively,
  29. the production and maintenance of software as an industrial process:
  30. Predictable in its outcome, repeatable in its execution, and portable in its
  31. independence on particular individuals.  Many conditions must be met for the
  32. managerial and technical processes advocated in software engineering to work.
  33. The principal requirement is that the designer knows fairly well what end
  34. product can be achieved (so it can be specified), what resources are required
  35. (so the product can be sized up), and how to build the product (so the
  36. production process can be planned).  The source of all this knowledge is
  37. experience based on previous production of similar products.  Conventional
  38. software engineering know-how works best when producing the (n + 1)st version
  39. of a compiler, text processor, or other well known software systems component
  40. or apllications package.
  41.  
  42. A small but important class of software development projects meets none of
  43. the conditions above.  For good reasons, such first-of-a-king projects are
  44. typically conducted in a manner diametrically opposite to traditional
  45. software engineering practice.  Typical conditions include:
  46.  
  47. * The designer has a clear vision of the direction of achievement, or "goal
  48. at infinity," but has no way to predict how far along this route progress can
  49. be pushed.
  50.  
  51. * For any specified level of achievement, it is impossible to predict the
  52. resources needed, perhaps not even their order of magnitude.
  53.  
  54. * Because nothing can be promised about the outcome, no long-term commitment
  55. of resources is made, and the only predictable budget feature is that the
  56. project has to be run on a shoestring.
  57.  
  58. * Software development cannot be planned, as the outcome of each phase and
  59. step is unpredictable; it proceeds, mostly by trial and error, along lines of
  60. least resistance or greatest promise.
  61.  
  62. * Last but not least, such a project is intimately tied to the particular
  63. individuals involved and reflects their personal characteristics.  Removing a
  64. key individual will kill the project or transform it beyond recognition;
  65. assigning another team to do "the same" project results in a different
  66. venture.
  67.  
  68. The rapidly spreading use of interactive applications has kept software
  69. products in a state of flux for more than a decade: Spreadsheets, painting
  70. programs, hypertext are just some of the products that lacked practical
  71. models a decade ago.  All indications point to a continuation of the trend
  72. that essentially new types of software will continue to be developed, along
  73. with the bread-and-butter tasks of perfecting the next version of existing
  74. models.  Thus it behooves the software engineering community to recognize
  75. that exploratory software development is an activity of long-term importance
  76. worth studying.  Even a casual acquaintance with several exploratory software
  77. projects suggests that they proceed according to rules different than those
  78. postulated in the software engineering literature.  It is not just a matter
  79. of developing a prototype or two before starting on the product, and it is
  80. definitely not a matter of going through half a dozen phases of a life-cycle
  81. that includes requirements analysis, specification, coding, and testing.
  82.  
  83. The style of exploratory software development is linked so intimately to the
  84. individuals involved that one might be reluctant to search for common traits,
  85. expecting only to see talented and dedicated individuals "doing their own
  86. thing."  The opportunity to observe several such projects by different teams
  87. has convinced us, however, that there are significant similarities.  These
  88. include:
  89.  
  90. * A blatant bottom-up approach to systems building: The system evolves around
  91. key routines and components that are built early, are perennially modified,
  92. and pragmatically combined in different ways in response to feedback.  System
  93. behavior, far from being specified a priori, is an ever-changing result of
  94. these experimental set-ups.
  95.  
  96. * At all times, have a running system, even if it is only a mini version of
  97. what you are striving for.  Since specification ahead of time is out,
  98. observation of the program's behavior, and of the users' reactions, is
  99. essential at all times.
  100.  
  101. * Keep your tools sharp!  Building an environment useful for rapid
  102. prototyping is effort well invested, as code is never "finished," and the
  103. turn-around time needed to implement a new version or perform an experiment
  104. is critical.
  105.  
  106. * Strive for a design that leaves as many options open as possible--tomorrow
  107. we may know better than today what option to exercise.
  108.  
  109. * Keep your ears to the ground!  A significant project spans years, and
  110. during its lifetime the surrounding circumstances change considerably--a good
  111. dose of opportunism is necessary to keep the project relevant and up-to-date.
  112.  
  113. Software developed according to this philosophy evolves through selection a
  114. bit like natural systems do--with one important exception.  A single team
  115. cannot afford to imitate prolific nature and spawn mutations to be developed
  116. concurrently.  At any time, the cumulative experience of the entire project
  117. must be distilled into one running version.  It is worth remarking, though,
  118. that in situations where several independent teams work on a similar goal,
  119. the analogy with natural selection, and the multitude of related species it
  120. creates, is apt--consider, for example, the many versions of UNIX in
  121. existence.
  122.  
  123. The Unpredictable Complexity of Knowledge
  124.  
  125. Formalization
  126.  
  127. The development of an expert system, or any project that involves the
  128. formalization of an open-ended domain of human knowlege, adds specific
  129. difficulties associated with knowledge engineering to all the traditional
  130. problems of software engineering.  The chief difficulty added by knowlege
  131. engineering is that hardly anything of importance seems to be predictable,
  132. and hindsight becomes the only reliable basis of judgment.  This is a drastic
  133. departure from the norm of engineering development, which is based on the
  134. assumption that we know ahead of time what we will end up with.  It forces
  135. computer scientists to look at the process of formalization in a new light.
  136.  
  137. Computer science is the technology of formalization.  If anythingis to be
  138. processed by computer, the rules of processing are expressed in a formal
  139. system.  This system may be a programming language defined by a collection of
  140. hardware and software that includes a computer, an operating system, and a
  141. compiler; it may be a programing or specification language defined
  142. abstractly; or it may be a more traditional mathematical system built on
  143. axioms and rules of inference.  The programmer may or may not think of
  144. his/her activity as a task in formalization--the point here is that, once a
  145. program has been written, it is a formal system.
  146.  
  147. One can view computer science education as having two major goals: To teach a
  148. sufficiently rich arsenal of techniques of formalization, and, in projects
  149. and case studies, to impart as much experience as is feasible concernign the
  150. practical application of these techniques.  Thus we expect, for example, that
  151. a systems programmer can formalize a communications protocol, and a systems
  152. analyst or database administrator can formalize the structure of payroll
  153. information.  Both of these examples rely on the fact that the domain of
  154. knowledge to be formalized is closed, as opposed to open-ended, and of every
  155. limited size and complexity.
  156.  
  157. The word 'knowledge engineering,' on the other hand, is typically used for
  158. domains of knowledge much larger and more complex than the examples above.
  159. Attempts at formalization capture only a small fraction of therelevant
  160. domain.  This is true, for example, of standard microwords of artificial
  161. intelligence, such as chess.  The designer usually cannot even formalize all
  162. of his personal knowledge of the field, let alone that possessed by the
  163. community at large.  The literature on expert systems at times presents
  164. interviews of human experts as the way to capture knowledge, but this is
  165. really a technique of identifying knowledge, rather than formalizing it.
  166.  
  167. Given this state of affairs, the knowledge engineer typically starts with an
  168. educated guess of what small part of the vast collection of know-how can be
  169. formalized and will result in acceptable performance, then repeats the
  170. following steps until patience or resources run out: Implement this subset,
  171. observe the outcome (it can always be improved!), and tune the knowledge base
  172. to achieve a hoped-for effect.  This is a basic human mode of operation, but
  173. is not what traditional software engineering doctrine has been advocating,
  174. and is not what most software environments support.
  175.  
  176. We illustrate these points with a study of an exploratory software
  177. development project with a large knowledge engineering component.  Its goal,
  178. a program to play the Oriental game of Go, is exotic and needs explaining,
  179. including a brief survey of the history and current state of computer Go.
  180.  
  181. A Program to Play Go
  182.  
  183. As a study in exploratory software development and knowledge engineering, we
  184. present Explorer, a program that runs on the Smart Game Board and plays the
  185. Oriental game of Go.  It took four years to build and perfect the Smart Game
  186. Board, and test it in two applications: An interactive Go calculator that
  187. provides basic tactics routines, and a program that plays Othello.  By the
  188. Spring of 1988 this powerful programming environment and test bed had matured
  189. to the stage where a new member of the team, who focused on the analysis of
  190. strategic features of board positions, could implement a program to play the
  191. full game of Go during a summer of intensive work.  In the Fall of '88, in
  192. its first test against other programs, Explorer tied for 2nd among 16
  193. programs that competed in the 4th International Computer Go Congress in
  194. Taiwan, the unofficial world championship organized by the Ing Foundation.
  195. Explorer proved to be a fierce if somewhat unsteady fighter, whose play
  196. revealed some crass shortcomings.  The team split soon thereafter, each group
  197. trying out its own cure to avoid Explorer's predictable lapses.  As a
  198. consequence, Explorer retired from active competition and spawned two
  199. offspring.  Both run on the Smart Game Board and both improved on their
  200. parent's record in their very first encounter.  In the summer of '89, Go
  201. Intellect won the North American Computer Go Championship, and Swiss Explorer
  202. won the Go tournament at the first Computer Olympiad in London.  We attribute
  203. these results to a mixture of good luck and a solid dose of sound software
  204. engineering practices.
  205.  
  206. Although this project is unique in several ways, it is typical of exploratory
  207. software development in others.  We believe there are lessons to be learned
  208. with respect to the interaction between software engineering and knowledge
  209. engineering.  This case study illustrates the decisive importance of a
  210. powerful development environment.  A large investment of effort in building
  211. the best software engineering environment we were able to devise, out of
  212. components that are well understood, made it feasible to experiment
  213. extensively in the poorly understood realm of knowledge engineering.
  214.  
  215. Why Work on a go Program?
  216.  
  217. Work on game-playing programs is always, in part, a hobby.  But there must be
  218. other justification as well, because game playing programs, when pursued far
  219. enough that they can compete among the best, require several man-years of
  220. effort.  Such justification is readily found, in an academic environment, in
  221. terms of education and research.
  222.  
  223. Education.  The idea of robots playing games of strategy has intrigued people
  224. since the invention of clockwork, but it remained for electronic computers to
  225. turn it into reality.  Famous computer pioneers prepared the ground: John von
  226. Neumann created the mathematical theory of games, alan Turing and Claude
  227. Shannon devised techniques that allow computers to play chess [20, 22].  The
  228. concepts and techniques developed range from game theory to knowledge
  229. representation, and from heuristic search to program optimization.  Many of
  230. these ideas have become an accepted part of computer science lore, and
  231. students should be exposed to them.  The concepts are empirical more than
  232. they are theoretical: The typical question is not whether something can be
  233. done in principle, but how well it can be done within practical constraints.
  234. In computer science, a meaningful exposure to empirical concepts must be
  235. based on working programs.  We have been conducting seminars on heuristic
  236. search and computer game playing in which the Smart Game Board serves as a
  237. workbench and test-bed that makes it possible for students to write and test
  238. a game-playing program of their own design in one semester.  It was a seminar
  239. held in '86 over North Carolina's state-wide two-way teleclass network that
  240. brought the authors together in cooperating on a Go playing program.
  241.  
  242. Research.  A significant part of our knowledge of what computers can and
  243. cannot do in artificial intelligence comes from experiments with computer
  244. game playing--so much so that computer chess has been called the "drosophila
  245. of AI," i.e. the preferred test object for experimentation.  This assessment
  246. is based on two very useful properties.  1) Games of strategy form
  247. microworlds of just the right complexity (simple enough to be easily
  248. formalized, hard enough to tax computational resources) to develop and test
  249. our growing arsenal of artificial intelligence techniques.  2) Progress can
  250. be measured accurately in terms of improved playing performance--a chess
  251. rating or a Go rank are much more objective measures than exist in most other
  252. applications of knowledge engineering.
  253.  
  254. What to Work On?
  255.  
  256. We took up game-playing programs as a side-line in 1983 based on a
  257. combination of factors: personal interest, the view that there was still
  258. unexplored land, and the conviction that knowledge engineering must be
  259. approached empirically in a microworld where performance can be measured
  260. objectively, accurately, quantitatively.  There was a lot of experience and
  261. information about chess playing programs, and computer chess appeared to be
  262. in a relatively mature stage where success came from doing the same thing
  263. better and faster.  Comparatively little was known about computer Go and
  264. other games.  Go has a reputation for being the most profound game of
  265. strategy, thus may be one of the hardest to program, and hence a fertile
  266. field for experimentation.  We are aware of four Ph.D. dissertations written
  267. on computer Go [5, 13, 19, 26].  In contrast to chess, computer programs that
  268. play Go were still in their infancy, playing so poorly that their performance
  269. was essentially off the accepted scale for ranking human players.  An
  270. increased interest in computer Go could be expected; in particular in Japan,
  271. where Go is a national hobby, and the government-sponsored project on Fifth
  272. Generation Computer Systems greatly boosted research in artificial
  273. intelligence.
  274.  
  275. How?
  276.  
  277. The combination of 1) little existing experience, and 2) an anticipation that
  278. during the course of the project many competitor projects might emerge,
  279. caused us to approach the subject on a broad front, and to design a project
  280. that emphasized basics and could be redirected to focus on different goals
  281. depending on where progress appeared most promising as the work evolved.
  282. Rather than setting specific goals, we decided on a few directions, on "goals
  283. at infinity," and embarked on a journey that would lead as far as we could
  284. go.  These directions included:
  285.  
  286. 1. Design and build a workbench, later called the Smart Game Board, for the
  287. development of game-playing programs.  What do various games have in common,
  288. what components can be shared among programs that play different games?  This
  289. workbench quickly became a useful teaching tool--a skeleton program to be
  290. tailored to specific games in student term projects.  Soon it became a useful
  291. vehicle to maintain and enhance an Othello program developed independently
  292. [9], and to implement Go-Moku in one semester.
  293.  
  294. 2. The Smart Go Board [12]--a useful teaching and studying tool for the Go
  295. player to analyze, annotate, store, and print games.  This would ensure a
  296. small but dedicated community of users to help in testing and improving the
  297. program.
  298.  
  299. 3. Go tactics calculator, expert-guided search.  Goal at infinity: Can a
  300. person play noticeably better using a Go tactics calculator than when he
  301. relies on his own wits?
  302.  
  303. 4. Testbed for experimenting with strategies and techniques for playing a
  304. full game of Go.
  305.  
  306. The last part of this article is devoted to 4), so let us briefly mention the
  307. earlier phase 3), where we attacked the seemingly easier problem of
  308. developing a "Go calculator," with a function analogous to that of a handheld
  309. numerical calculator.  Its purpose is not to play Go against an opponent, but
  310. to assist a human player in those tasks that are better delegated to a
  311. machine because they require speed and accuracy, as opposed to expert
  312. judgment.  The human player decides on strategy and calls upon the program to
  313. calculate tactical sequences of moves to achieve a well-defined purpose.  As
  314. the program builds and traverses a search tree, the player directs the search
  315. and can interactively modify the board if he so chooses.  This approach can
  316. be described as using computers as "amplifiers of human intelligence," rather
  317. than as autonomous intelligent machines.  And rather than building a
  318. computerized expert system that tries to capture human knowledge in
  319. executable form, we investigated 'expert-guided search', where human
  320. experience and intuition guide the great processing power and fast and
  321. accurate memory towards fruitful goals.  This emphasis on interactive user
  322. control investigates computer-aided human decision making.  Games of strategy
  323. such as Go have always served as simplified models for decision making.  In
  324. the modern era of decision support systems, it is reasonable to assume that
  325. programs that support gaming can serve as test beds for some aspects of
  326. computer support for decision making.  A reasonably objective test of this
  327. game calculator is easy to arrange: does a player with calculator play
  328. consistently better than without?
  329.  
  330. What can be Foreseen?
  331.  
  332. When this project was started in 1984, hardly any guidance was available: A
  333. few precursors served as warning of difficulties to be expected, none
  334. provided a model to be followed.  With hindsight gained through five years'
  335. worth of experience, it is interesting to compare some of the questions and
  336. expectations we had at the start of the project, and current answers.
  337.  
  338. Foreseen: A Smart Game Board is feasiable as a useful hypertext medium for
  339. storing an annotated collection of games, and browsing through them.  It can
  340. support a variety of games and run on a low-cost personal computer.
  341. Advancing technology quickly solved initial problems such as insufficient
  342. main memory and disk, low screen and printer resolution.  The result
  343. justifies the years spent in cumulating detailed improvements: The Smart Go
  344. Board is being used by at least 100 Go players to manage their games.  One
  345. professional Go master was it as a teaching tool to exchange games and
  346. comments with his remote students.
  347.  
  348. Might have been foreseen, but the idea evolved during the project: It is
  349. feasible to develop a common user interface that fits entirely into one
  350. screen, powerful enough to handle many different games.  Interaction with
  351. different games takes place using the same windows, and, to a large extent,
  352. the same operations.  This is possible because the majority of operations
  353. provided by the Smart Game Board are defined on the game tree, and thus are
  354. game-independent.  So far the user interface has proven to be adequate for
  355. Go, Othello, Go-Moku, and chess.
  356.  
  357. Unforeseen: How hard is it to develop a useful Go tactics calculator?  We
  358. expected to develop an interactive program capable of analyzing and solving
  359. clear-cut tactical tasks identified by an expert amateur user.  This tactics
  360. calculator has proven to be much harder than anticipated, and so far is
  361. useful for only a very limited range of tactical problems: Mostly,
  362. complicated ladders and loose ladders, i.e. forcing sequences in capturing a
  363. block that has no more than 2 or 3 liberties at any time.  With hindsight, of
  364. course, we can see why this problem is hard--the interface between human
  365. strategy and machine tactics requires difficult formalization of intuitive,
  366. fuzzy concepts.  To substantiate this point, we can do no better than quote
  367. the operator of Deep Thought (DT), today's strongest chess computer, as it
  368. assisted grandmaster Kevin Spraggett in an elimination match for the world
  369. championship [7]: 'I was in the fortunate position of being able to watch and
  370. assist the possibly first-time cooperation between a grandmaster and a
  371. computer....  Other problems were related to "interfacing" DT with Spraggett
  372. or his seconds.  It is indeed hard to translate a question like "can black
  373. get his knight to c5?" or "can white get an attack?" or "what are black's
  374. counter chances" into a "program" for DT, since it just doesn't have these
  375. concepts.  Translating back DT's evaluations and principal variations (PV) is
  376. easier, but this information is incomplete most of the time.  Indeed, the
  377. alpha-beta algorithm generally gives accurate values on the PV only (other
  378. lines are cut off), whereas a human wants to know why alternatives fail.'
  379. Given the weak play of today's Go programs, a useful Go tactics calculator is
  380. far off.
  381.  
  382. Unforeseeable: How strong a Go program to aim at.  The lack of experience
  383. prevailing in the fifties and sixties triggered useless predictions about the
  384. strength of chess programs that ranged from wildly optimistic ("a computer
  385. will be world champion within the decade") to overly pessimistic ("computers
  386. will never beat human experts").  Simiarly, there was no rational basis for
  387. predicting how strong, or weak, a Go program we could develop.  With
  388. hindsight, observing that half a dozen independently developed programs that
  389. competed at recent computer Go tournaments are comparable in strength, one
  390. can conlude that a knowledgeable and dedicated small team can develop a 15
  391. kyu Go player (this rating scale is explained later) with an effort of a few
  392. man-years.
  393.  
  394. The Development of Computer Go
  395.  
  396. A brief survey of the history and current state of computer Go serves to
  397. place our project in perspective.  Compared to other games of strategy, in
  398. particular checkers and chess, computer Go started late and, until recently,
  399. progressed very slowly.  Many people feel this is due to the inherent
  400. difficulty of Go--a view well expressed in [4] as "The Game of Go--The
  401. Ultimate Programming Chalenge?"
  402.  
  403. Work in Computer Go started in the early 1960s [18] and intensified with the
  404. Ph.D. dissertations of Zobrist [26, see also 23] and Ryder [19, see also 24].
  405. Zobrist relied on pattern recognition, Ryder on tree search.  Both of these
  406. approaches had already been explored in chess, where the latter, in
  407. particular, has proven its value beyond doubt.  But although these approaches
  408. capture part of what Go is about, neither program played as well as a
  409. beginner plays after just a few games of experience.  Humans use pattern
  410. recognition to a large extent, but their patterns are more complex and
  411. abstract than those used by Zobrist.  And pure tree search runs into the
  412. hurdle that the branching factor of Go is significantly larger than that of
  413. other games on which this approach has been tried.  Selective search is more
  414. important for Go than it is for chess, and setting goals to focus the search
  415. calls for insight into the posiiton.
  416.  
  417. The Reitman-Wilcox program [17], based on a representation of the board that
  418. reflects the way good players perceive the board, was a step forward.  They
  419. concentrated on strategy, adding some tactical analysis late in the project.
  420. Their program only reached the level of a novice player.  Bruce Wilcox
  421. analyzed the strong and weak points of his first program, then rewrote it
  422. from scratch [25].
  423.  
  424. Since 1985 activity in computer Go has mushroomed.  A strong Go-paying
  425. program was a goal of the Japanese "Fifth Generation" project, but was
  426. dropped (too hard?).  Several dozen individuals and small teams are now
  427. involved in Go programming, and these efforts are beginning to bear fruit.
  428. The annual International Computer Go Congress, organized since '85 by the Ing
  429. Foundation of Taiwan, has provided an arena for competition and a yardstick
  430. for assessing progress.  The best Go programs now play at the evel of 12 to
  431. 15 kyu, distinctly better than human beginners.  But they have a long way to
  432. go as compared to chess, where commercial machines have achieved master
  433. ratings.
  434.  
  435. SMART GAME BOARD
  436.  
  437. The Smart Game Board supports two kinds of experiments with game-playing
  438. programs.  First, as a hypertext medium: Its user interface is designed to
  439. help serious players study the game in ways that are impossible without a
  440. computer.  Second, as a workbench for programming games: Its structure
  441. encourages experimentation with different search algorithms and strategies.
  442. Neither of these functions is bound to any one game; originally designed for
  443. Go, the Smart Game Board was expanded to include Othelo and chess.
  444.  
  445. What is It?  A Tool to Assist Game Players
  446.  
  447. The Smart Game Board is a tool to assist game players in the many activities
  448. they now perform on a wooden board and paper: Playing, teaching, discussing,
  449. analyzing, studying, recording and printing.  A personal computer should make
  450. a better tool for some of these activities, but, as with any new application,
  451. it is not a priori clear what functions a game workbench can and should
  452. provide.  At the very least, it must provide the functions of a wooden board.
  453. This is much harder than it seems, because the board is not just used to pay
  454. moves: Players talk while pointing at it and rearranging stones at will.  In
  455. computer jargon, the board is a shared workspace that supports very fast and
  456. convenient editing.
  457.  
  458. A wooden board is more agreeable than a computer screen, and players wil only
  459. switch to the computer if it offers additional benefits: Easy annotation,
  460. ready access to a library of games and openings, help with tactical analysis,
  461. or a strong opponent.  The Smart Game Board has passed the threshold of
  462. usefulness: About a hundred players use it, many say it is their preferred
  463. way of studying the game, it has been used at tournaments to record games and
  464. between rounds as an opening library.  Its versatility is proven by
  465. applications we had not directly designed for: One-on-one lessons by
  466. professionals, and taking notes during lectures on Go.
  467.  
  468. What Games have in Common
  469.  
  470. There is no point in trying to make the Smart Game Board general enough to be
  471. used for any kind of game--games differ too much to be all brought under one
  472. hat.  Our choice of Go, Othello, and chess reflects personal and professional
  473. interests, but we think they represent a sufficiently diverse sample of an
  474. important class of games: Two-payer board games with perfect information.
  475. How do these characteristics make it easier to build a game-independent user
  476. interface?
  477.  
  478. * Two players: Limiting the game to two players, Black and White, reduces the
  479. complexity of the interface without unduly restricting the set of games.
  480.  
  481. * Board game: The board is a convenient visual representation of the current
  482. state of the game, and makes it easy to enter a move by clicking or dragging
  483. the mouse.  Throwing dice or drawing cards would make it more complicated to
  484. enter a move.
  485.  
  486. * Complete information: If each player always has access to the complete
  487. state of the game, there is no need to hide information from one of the
  488. players.
  489.  
  490. * Sequence of moves: Most games evolve as a fixed sequence of discrete
  491. actions (moves) by the players.  Action games ike PacMan on the other hand,
  492. where moves come any time and timing is critical, do not fit this model.
  493.  
  494. These common traits allow us to implement the functions presented below
  495. independently of any particular game.  Renju (Go-Moku) was included in an
  496. earlier version; other games that could be added without major changes
  497. include: Kalah, Checkers, and Connect Four.  It would be harder to integrate
  498. card games like Blackjack, Bridge, and Poker, dice games like backgammon, or
  499. word games like Scrabble.  We discuss game-specific differences in more
  500. detail later.
  501.  
  502. An Editor for Game Trees.  The Smart Game Board is an editor specialized for
  503. game trees, and its user interface shows similarities with other editors.  A
  504. game is treated as a document that can be opened, viewed, modified, and
  505. saved.  We concentrate on those aspects that distinguish the Game Board from
  506. other editors.
  507.  
  508. The underlying structure of a game is a tree, where a list of properties is
  509. associated with each node.  In its simplest form, the tree degenerates into a
  510. sequence of nodes, each with exactly one property, a move.  The generality of
  511. a tree is needed to let the user experiment with different sequences of moves
  512. while keeping the original game intact.  The tree is extended to a directed
  513. acyclic graph for opening libraries (different move sequences may lead to the
  514. same position).  The concept of a list of properties at each node is needed
  515. to store attributes such as comments referring to the move, marks declaring
  516. the move to be good or bad, or the time left at this point in the game.
  517.  
  518. A game is replayed by traversing the tree: Advancing by one node executes the
  519. move stored at that node.  It is useful to provide various ways of moving
  520. about the tree: Depth-first traversal, go to next/previous branch point or
  521. terminal node, or search for nodes with specific properties.  General tree
  522. editing commands allow one to copy properties, nodes, and entire subtrees
  523. from one game to another.  More powerful operations on game trees include
  524. backing up values in min-max fashion, or sorting the branches according to
  525. the number of terminal nodes in each subtree.  Go, chess, and Othello players
  526. intuitively understand the concept of a game tree, as it is the simplest
  527. notion powerful enough to capture what they are doing while analyzing a game.
  528. If the user enters no alternative moves and thus grows no branches, the tree
  529. degenerates into a trunk corresponding to the sequence of moves actually
  530. played.  Playing a move automatically adds a node to the currently active
  531. branch of the tree, adds a move property to that node, and executes the move.
  532. Simpler interfaces could be designed for programs that offer fewer services,
  533. such as merely playing against a computer, or looking up an opening library.
  534. In contrast, the Smart Game Board is a general tool that helps serious payers
  535. in unexpected ways.
  536.  
  537. Database for Games.  Database software dedicated to games, such as ChessBase
  538. [16], is rapidly becoming an essential tool for serious players, as it helps
  539. them track large collections of games, standard openings, statistics, etc.
  540. Users can order games by openings, play through famous master games, or get a
  541. printout of the games their next opponent recently played.  Today, games from
  542. major tournaments are quickly made available to subscribers in
  543. machine-readable form.  The Smart Game Board provides similar functions, but
  544. is not yet as good a database system as we aim at.  It has been used to
  545. organize 1300 Othello games and therefrom create a library of standard Othelo
  546. openings.  Given an opening position on the board, it retrieves all matching
  547. games from its database, as shown in Figure 1.
  548.  
  549. Game Server.  Some users working on their own electronic game board or
  550. game-playing program want to have access to Smart Game Board's functions from
  551. their own program.  For example, it can be used as an opponent to test the
  552. strength of their programs, it might extract a game from the game library, or
  553. it could provide a collection of positions for statistical analysis.  For
  554. that purpose, the program provides a serial interface where most functions
  555. availabe to the user can be accessed with textua commands.  The concept of a
  556. game server helps us test and tune our Go program, with different versions of
  557. the program playing each other overnight.  More work is needed to turn this
  558. personal game server into a service people can connect to and play games
  559. against.
  560.  
  561. Structure of the System
  562.  
  563. The structure of the Smart Game Board is designed to separate game-specific
  564. from game-independent aspects.  It provides slots where each game can plug in
  565. its specific routines for the rules (egal move recognition and execution),
  566. the user interface (board display, move input, menu functions), and an
  567. optional playing agorithm.  A search engine provides depth-first search and
  568. iterative deepening based on game-specific routines for move generation,
  569. positive evaluation, and time control.
  570.  
  571. The program is written in SemperSoft[TM] Modula-2 under MPW (Macintosh
  572. Programmer's Workshop) and runs on the Apple[R] Macintosh.[TM]  We lack the
  573. resources for porting it to other systems.  The program now consists of a
  574. total of 44,000 lines of code (including definition modules and comments,
  575. excluding blank lines).  The distribution among the components is shown in
  576. Table 1.
  577.  
  578. The Go program compiles to 500 kBytes of object code, the Othello program to
  579. 250 kBytes.  In addition, at least 150 kBytes are needed for data structures;
  580. if more memory is available, a larger has table and a larger tree are
  581. allocated.  Game-specific modules make their presence or absence known by
  582. installing procedures in some common lower-level module.  This structure
  583. facilitates experimentation with different search algorithms as well as
  584. different games, and it allows us to configure different versions of the
  585. program.  While handling a command, the program switches back and forth
  586. between game-specific and game-independent routines several times.  For
  587. example, a click on the board intended to enter a move triggers a call to a
  588. mouse-tracking routine.  This routine is game-specific so as to give feedback
  589. appropriate to the game, e.g., in the case of illegal moves.  Once the move
  590. is recognized as legal, a new node is added to the tree independently of the
  591. type of game.  Then another game-specific routine is called to execute the
  592. move stored in the node.
  593.  
  594. Implementing Go, Othello, Chess, and
  595.  
  596. Nine Men's Morris
  597.  
  598. So far, Go, Othello, chess, and Nine Men's Morris (Muhle) have been
  599. implemented.  Go came first and determined structure and user interface.
  600. Integrating an existing Othello program in the Go framework caused only minor
  601. structural changes, as Go and Othello are superficially similar: Both have a
  602. board with black and white stones, stones are added to the board and never
  603. moved, the controlled territory at the end of the game decides the winner.
  604. Adding chess, however, required major surgery to make more operations
  605. game-dependent, such as move input, move representation, and board editing.
  606. Whereas in Go and Othello a move is given by a point on the board, chess has
  607. from--to moves and several kinds of pieces.  'Minor' differences cause
  608. delicate program changes if the Smart Game Board is to retain an elegant
  609. structure throughout its evolutionary adaptations.  For example, moves are
  610. counted by plys in Go, but as a pair of white--black plys in chess.  The
  611. consequence is that a simple incrementing statement in a display routine gets
  612. replaced by an interpreter for a game-specific descriptor for move-counting
  613. and displaying.  Nevertheless, adding chess to the Smart Game Board was a
  614. minor task compared with implementing even a rudimentary chess user interface
  615. from scratch.  A program that plays Nine Men's Morris was recently added in a
  616. few weeks of work.  It benefited greatly from the changes due to chess and
  617. added no new requirements.
  618.  
  619. Go and Othello programs that run on the Smart Game Board have competed
  620. successfully in several tournaments.  The original Othello algorithm included
  621. in the Smart Game Board was Brand, which placed second at the 1982 North
  622. American Computer Othello Championship in Evanston.  Recently, a better
  623. Othello program, Peer Gynt, was created by writing a new evaluation function
  624. and improving the time control.  This work was done in only two man-weeks by
  625. using many existing building blocks from Brand and from the Smart Game Board.
  626. An early version of Peer Gynt placed third at the 1989 North American
  627. Computer Othello Championship in Northridge.  The chess module is not
  628. intended to play, only to manage game collections.  Nine Men's Morris
  629. (programed by Ralph Gasser) plays a fair amateur game, but so far we have
  630. found no computer opponents to challenge (none were present at the London
  631. Olympiad in August 1989).
  632.  
  633. Most of the Smart Game Board's user interface is embodied in a control panel
  634. common to all games (Figure 3 shows it in a window at the top left of the
  635. screen).  Game-independent operations are defined as motions on a game tree.
  636. Game-specific operations (e.g. setting up positions in chess, entering marks
  637. for annotating Go games) and status information (e.g. number of captives in
  638. Go) are provided in a menu specific for each game.
  639.  
  640. What does it take to add another game to the Smart Game Board?  A
  641. game-specific module that implements two functions:
  642.  
  643. * Recognize, execute, and undo legal moves.
  644.  
  645. * Display the board and track move input.
  646.  
  647. Go-Moku, for example, is played on the same board as Go, and thus required no
  648. change to the board display.  If the surface of a new game differs
  649. significantly from any of the implemented games, it is probably easier to
  650. change some parts of the Smart Game Board to better accommodate this and
  651. future games, rather than forcing the new game into the current framework of
  652. the Smart Game Board.
  653.  
  654. EXPLORER
  655.  
  656. Characteristics of Go
  657.  
  658. Assuming the reader knows little or nothing about Go, we attempt to provide
  659. some intuition for this game's domain of knowledge, in part by comparing Go
  660. to chess.  Several excellent introductory books are available from [3].  Go
  661. is a two-person game of perfect information in the sense of game theory; at
  662. all times, both players know the entire state of the game.  The players
  663. alternate placing a black and a white stone on some empty intersection of a
  664. 19 by 19 grid.  Once played, a stone never moves, but it may disappear from
  665. the board when captured.  A player's objective is to secure more territory
  666. than his opponent, counted in terms of grid points.  In the process of
  667. surrounding territory by laying down a border of stones that must be 'alive,'
  668. fights erupt that typically lead to some stones being captured ('killed').
  669. Much of the difficulty of Go comes from the fact that during most of the
  670. game, few stones are definitively alive or dead.  Stones are more or less
  671. vital or moribund, and their status can change repeatedly during the course
  672. of a game, as long as the surrounding scene changes.  Only when the game has
  673. ended can all stones be classified definitively as alive or dead.  Thus 'life
  674. or death,' the key concept of Go, exhibits a split personality.  As an
  675. opeational concept during the game, it is the most important factor in
  676. estimating potential territory and for assessing the chances of battle, but
  677. is rather fuzzy.  It becomes more and more precise as the game progresses,
  678. and is a well-defined concept used for counting territory when the game has
  679. ended.  The game ends when neither player can find a profitable move and all
  680. points are classified as one of black, white, or no-man's-land.  This
  681. situation typically arises after about 200 to 300 moves have been played,
  682. with anywhere between 60 and 90 percent of the 361 grid points occupied.
  683. Whereas in chess we count a move (by a white piece) and counter-move (black
  684. piece) as a single move, in Go we count the placement of each single stone as
  685. a move.  Even keeping in mind that a Go move corresponds to half a chess move
  686. (a 'ply'), it is evident that a Go game can take a long time.
  687.  
  688. Professional games last one to two full days.  As an extreme example from the
  689. 1988 Honinbo Title match, the defending champion Takemiya spent 5 hours and 7
  690. minutes on a single move.  The rich tradition of Go records instances of
  691. games that took months.  Kawabata Yasunari, winner of the Nobel Price for
  692. Literature in 1968, considered his novel 'The Master of Go' [8] to be his
  693. finest work.  It is the chronicle of a single game, played in 14 sessions
  694. from August through December of 1938, a contest for supremacy between the
  695. heretofore invincible old Master of Go, Honinbo Shusai, and his younger
  696. challenger, Kitani Minoru.  It is a moving tale of the contest between
  697. tradition and change, and, ultimately, between life and death.
  698.  
  699. If chess is a model of a single battle (as fought thousands of years ago), Go
  700. is a model of war: Typically, several loosely interacting land-grabbing
  701. campaigns and battles proceed concurrently.  Go is a great game of
  702. synchronization: The stronger a player, the better he is able to coordinate
  703. his campaigns and disrupt the coordination among enemy forces.  Multipurpose
  704. moves are the most effective, such as a 'splitting attack' that wedges in
  705. between two enemy groups, or a move that threatens to kill an enemy group and
  706. extends one's own territory at the same time.  Typically one player has the
  707. initiative, called 'sente,' which enables him to play strong threats that
  708. leave the opponent little choice but to respond locally.  Thus the player
  709. with sente can choose the field of action to suit his goals, whereas his
  710. opponent, said to be in 'gote,' "follows him around the board."  The
  711. sente/gote relationship alternates between the players, but among opponents
  712. of different skill, the stronger player will manage to keep sente most of the
  713. time.
  714.  
  715. Intuition and experience let a player estimate the numerical value of each
  716. move he considers.  In the opening, a typical move may be worth about 20
  717. points (of 'equivalent territory').  Move values may be highest in the middle
  718. game, but then they decrease steadily towards the endgame, where fights may
  719. erupt over a single point, or even 'half a point.'  This phenomenon of
  720. decreasing value of a typical move as the game progresses causes timing to be
  721. of the utmost importance.  If a move is estimated to be worth x points in a
  722. local context, it must be played at just the right moment, when the value of
  723. other moves is also about x.  If played too early, the opponent may ignore
  724. this move and reply with a bigger one elsewhere, perhaps gaining sente.  If
  725. played too late, when the value of other available moves has diminished, the
  726. opponent may prevent it, even at the cost of ending in gote.  Players
  727. analyzing a game are always debating which move, among several good ones, is
  728. 'the largest.'
  729.  
  730. A handicap system makes it possible to balance players of different skill
  731. without changing the nature of the game much.  The weaker player starts by
  732. placing anywhere from 2 to perhaps 13 stones on the board.  In Japanese Go,
  733. these stones are placed in a fixed pattern on 'handicap points.'  In Chinesse
  734. Go, the weaker player places them anywhere--he starts with x free moves.  The
  735. handicap system defines a fairly accurate rating scale, illustrated in Figure
  736. 4.  Player A is x stones better than B if the chances become equal when B
  737. receives x handicap stones.  Playing strength of amateurs is measured on a
  738. scale where one unit corresponds to a handicap stone.  A very weak player may
  739. be 20 kyu, implying that he receives 10 handicap stones from a 10 kyu, who in
  740. turn receives 9 handicap stones from a first kyu.  A first kyu 'takes Black,'
  741. i.e. plays first, against a first dan, who receives 5 stones from a 6 dan.
  742. That's about as high as the amateur scale goes.  Above that, there is a
  743. separate scale for professionals, from the first (lowest, perhaps equal to an
  744. amateur 6 dan) to the 9th (highest).  The professional scale has a finger
  745. grating: 9 skill levels are compressed into a difference of about two
  746. handicap stones.  As computer Go is in its infancy, one would like to build
  747. on the mature experience with other games, but such experience does not
  748. transfer readily.  At chess, for example, computers owe their spectacular
  749. prowess more to the computer's speed at searching than to its knowledge of
  750. chess lore.  But experience with the computer chess approach of full board
  751. search does not apply directly to Go, for two reasons:
  752.  
  753. * Branching factor.  As Go is played on a 19 * 19 board, the number of legal
  754. moves decreases from 361 at the start to several dozen at the end, creating a
  755. tree with an average branching factor of about 200, as compared to a
  756. branching factor of about 40 legal moves from a typical chess position.  This
  757. larger fan-out may be compensated partly by the fact that in Go a greater
  758. number of move sequences (permutations of each other) lead to same position
  759. than is the case in chess.  (This phenomenon is due to the fact that almost
  760. all Go moves onto an empty grid point are legal, thus they can be played at
  761. any time, whereas many chess moves cease to be legal after some other pieces
  762. have moved).  Thus transposition tables that detect positions analyzed
  763. earlier promise to be relatively more effective in Go than in chess.  Still,
  764. we must assume that the vastly larger search space of Go greatly reduces the
  765. depth of feasible search.
  766.  
  767. * Position evaluation.  Material and mobility, the dominant factors in chess
  768. evaluation functions, are easily computed.  In Go, possession of territory is
  769. the closest equivalent to material possession in chess, but its evaluation is
  770. much more subtle: Except at the very end of the game, a player's claim to
  771. territory can always be challenged.  Go has no clear analog to chess
  772. mobility; perhaps 'shape' comes closest, but good and bad shape are hard to
  773. measure.
  774.  
  775. Whereas success in computer chess was achieved mostly by sidestepping the
  776. issue of knowledge engineering, and using fast search to compensate for
  777. meager chess knowledge, the analogous recipe is unlikely to lead to
  778. comparable success in Go.  The insight that both domain-specific knowledge
  779. and search are of critical importance makes Go a more diverse and balanced
  780. test bed for artificial intelligence research than chess is.  Computer Go may
  781. well become the new "drosophila of AI."
  782.  
  783. Despite the large branching factor, strong players routinely look 10 to 20
  784. moves ahead when a fight demands it--an activity called 'reading.'  This
  785. perplexing term suggests that a player, at that moment, is not free to let
  786. his imagination roam, but simply has to discover what is given--whether a
  787. plausible, perhaps forced, sequence of moves works or does not.  Go does know
  788. the concept of narrow and deep search, as does chess, but with a difference.
  789. 'Reading' is limited to a local scene, say a 5 by 7 corner, and never extends
  790. to the full board.  Even if reading guarantees a win in a local battle, that
  791. does not necessarily mean much--the enemy might ignore this battle and get
  792. compensation elsewhere.  A separate, more intuitive mental act is required to
  793. assess the relevance of such a local search to the overall situation.  So
  794. far, there is no alternative to the vast amount of Go knowledge accumulated
  795. by analyzing thousands of professional games each year, compiled and
  796. distilled in hundreds of Go books and journals.  Explorer is designed to
  797. explore the feasibility of a knowledge-based approach to computer Go,
  798. augmented by focused tactical lookahead in local fights.
  799.  
  800. What Aspects of Knowledge Engineering
  801.  
  802. are Relevant to Go?
  803.  
  804. It is useful to distinguish four major steps in the task of formalizing
  805. knowledge: Acquisition, selection, representation, and use.  The nature and
  806. difficulty of each step differs from application to application.  Acquisition
  807. and representation are most widely discussed in the literature, but turn out
  808. be non-issues in our project of formalizing Go knowledge.  Selection and use,
  809. on the other hand, are critical.
  810.  
  811. Knowledge acquisition.  How do you get at the subject matter knowledge that
  812. you may want to capture?  In contrast to other applications where this
  813. knowledge may be scattered and needs to be painstakingly assembled, we have
  814. all the Go knowledge at hand necessary at this stage of our project--mostly
  815. as the experience of Ken Chen, amateur 6 dan.  It is interesting to reflect
  816. on the fact that most progress in computer chess is due to amateurs of medium
  817. playing strength--strong chess players were evidently not essential to the
  818. development of champion chess machines.  This reflects the fact that
  819. computers can play amazingly powerful chess without much explicit chess
  820. knowledge.  We expect that explicit representation of game-specific knowledge
  821. will be more important for Go than for chess.
  822.  
  823. Knowledge selection.  Selecting a 'domain of discourse or competence' that
  824. matches the program's abilities is the crucial task.  At this stage it is
  825. hopeless to develop a Go program by trying to capture as much Go knowledge as
  826. possible.  And if we managed to get a lot of knowledge into a system, it
  827. would probably get "confused" and not know how to use it.  The key design
  828. issue in this knowledge engineering task is an expert assessment of what
  829. small part of the vast collection of Go lore can be programmed and will
  830. result in increased playing strength.  Emphasizing fundamentals, we try to
  831. make Explorer understand concepts such as: What stones are dead and should be
  832. given up, what groups are unsafe and should be protected or attacked, what
  833. blocks are important and deserve high priority.
  834.  
  835. Knowledge representation.  The question as to whether this knowledge is
  836. explicitly represented, say as rules in some appropriately chosen notation,
  837. or implicitly in program fragments, has been decided by pragmatic
  838. considerations of expediency.  At this early stage of the Explorer project,
  839. the choice is overwhelmingly in favor of procedural representation of
  840. knowledge--there is less overhead in getting started.  Some aspects of Go
  841. knowledge, such as the beautifully geometric nature of patterns, clearly
  842. invite the design of a pictorial language to specify condition-action
  843. rules--for example, as generators for 'tesuji' moves, the trademark of a
  844. highly skilled player.  Such notations have been developed [15], but their
  845. design and efficient implementation is a project in its own right. [21] is
  846. another example of explicit knowledge representatin, where patterns are
  847. encoded not pictorially, but verbally in terms of standard Go concepts.  In
  848. contrast, we have chosen not to tackle the general issue of assessing
  849. advantages and disadvantages of various representations of knowledge, but to
  850. focus on the specific question of what is feasible for a program under
  851. continuous development that has to make a move in 20 seconds on the average.
  852.  
  853. Putting knowledge to good use.  If knowledge selection is the key design
  854. issue, knowledge use is the key implementation problem.  The major source of
  855. difficulty is the fact that human knowledge is ubiquitously
  856. contradictory--for every proverb there is a counter-proverb.  In Go, the goal
  857. of maximizing territorial claims contradicts, or at least competes for
  858. resources against, a dozen other goals, such as influence, safety, making
  859. good shape, attacking or restraining opponent forces.  Explorer has two dozen
  860. move generators that all scream for their respective goals.  In a later
  861. section we show how the structure of Explorer attempts to coordinate and
  862. filter their screaming.
  863.  
  864. Go Knowledge: Design and Windfall
  865.  
  866. Among the Go concepts designed into Explorer, influence is the most basic.
  867. Any stone radiates influence across the board: Its influence peaks at the
  868. location of the stone, and decays exponentially with distance.  The
  869. superposition of the influence of all the stones on the board creates a field
  870. of force, a terrain that determines the structure of the board at this
  871. moment.
  872.  
  873. Another basic concept of Go is that of a block: A set B of stones of the same
  874. color such that any two stones in B are connected by a sequence of stones in
  875. B, with any consecutive pair horizontally or vertically adjacent.  A block is
  876. 'strongly connected,' and its stones die and are removed in unison when they
  877. lose their last 'liberty,' i.e., when there is no free point adjacent to any
  878. stone in the block.  Blocks, more than single stones, are the basic building
  879. blocks of Go positions.
  880.  
  881. 'Block' is a rigorously defined concept essential for checking the legality
  882. of moves, but a block is too small a unit for discussing the quality of
  883. moves.  For this we need two higher concepts, 'chain' and 'group,' that turn
  884. out 'o be fuzzy.  The intent of these concepts is clear, but their definition
  885. is not.
  886.  
  887. A chain is a set of blocks that, under normal circumstances, can be connected
  888. into a single block at will, even against (most) measures taken by the
  889. opponent.  A chain is a 'potential block,' and for purposes of planning can
  890. be treated as such.  Many chains will turn into block as the game progresses,
  891. but there are exceptions: A higher level of planning may decide that the
  892. connectivity of a particular chain is not worth preserving (for example,
  893. during a 'ko fight').
  894.  
  895. A group is a set of chains that typically fight together--an attack on any
  896. chain in a group is an attack on all of them.  Like an army that can operate
  897. and survive independently, it has a claim to territory, and many groups will
  898. turn into the boundary of a single territory as the game progresses.  But
  899. there are lots of exceptions--groups split and merge routinely, perhaps
  900. according to the players' plans, often dictated by the unpredictable whim of
  901. the fortunes of war.
  902.  
  903. Figures 5-8 illustrate these concepts, and the results of Explorer's
  904. analysis, on half a board in the early stage of a game.  There are three
  905. nontrivial blocks (see Figure 5): The two stones labeled 11, two adjacent
  906. stones labeled 9, and three adjacent stones also labeled 9.  All other blocks
  907. consist of a single stone.  The labels identify chains.  The two diagonally
  908. adjacent stones labeled 12 are not currently a block, but can be turned into
  909. one whenever black desires, as white would need two consecutive moves to
  910. separate them.  The same argument explains chains 9 and 6.  The two chains 7
  911. and 11 are connected for most practical purposes, but if a fight erupts later
  912. on, white might wedge in between and separate them.  Explorer considers them
  913. to be two chains, not one.  Figure 6 shows the combined influence wielded by
  914. all these stones, measured on a scale from 1 (low) to 64 (high) in favor of
  915. black or white.  As an example, notice how the gap between chains 11 and 7 in
  916. Figure 5 is under a strong black influence of 50 units; at the moment, this
  917. square is under black's control.  The lower right corner is under very strong
  918. influence exerted by chain 9, and will almost certainly turn into white
  919. territory.  The black stone 8 is dwarfed by the white chain above it, and
  920. thus exerts little influence.  It will most likely end up as a prisoner
  921. inside white's territory, but before that fate is final, it has some nuisance
  922. value ('aji')--it might link up with chain 12, or, less likely, support a
  923. black invasion of the corner.
  924.  
  925. Influence combines with chains to identify groups, shown in Figure 7 labeled
  926. by their group safety.  Safety ranges from 0 (hopeless) to 64 (totally safe).
  927. The two chains 11 and 7 in Figure 5 are now clearly identified as a single
  928. group, a fighting unit.  So are the single stones labeled 10 and 13 in Figure
  929. 5.  Experience shows that these two stones, or any two stones on the third
  930. line separated by two empty spaces, control the territory between the below
  931. them; this know-how is preached in every beginner's book.  Explorer has no
  932. explicit concept 'two stones on the third line separated by two empty
  933. spaces,' and thus can have no explicit rule about them.  But Explorer seems
  934. to know this fact anyway, as reflected by the relatively high influence on
  935. these points, as shown in Figure 6.  The influence measure was tuned to
  936. produce a reasonable result on such standard configurations.  Unlike a
  937. collection of explicit rules that can never capture all situations, influence
  938. applies to all configurations, and gives reasonable results for most.  It is
  939. also used to define a territorial claim for each group, shown shaded in
  940. Figure 7.  This analysis of the board is updated after each move.  Figure 8
  941. shows the effect of a single move in the position of Figure 7.  Left: A black
  942. invasion lowers the safety of white's 2-stone group from 47 to 13, and
  943. enhances the safety of black's group to the right from 47 to 51.  Right: A
  944. white 'peep' that threatens to break black chain 6 drastically reduces its
  945. safety from 46 to 28 and 4.
  946.  
  947. A last comment on knowledge selection.  Explorer is a weak player playing
  948. other week players who are likely to exhibit typical beginners' shortcomings
  949. in their repertoire of techniques.  It is tempting to design tricks into it,
  950. that is, schemes and techniques that stand a good chance of catching a novice
  951. unaware, but are basically unsound and will be refuted by an alert stronger
  952. player.  Inspired by Bobby Fischer's famous creed: "I don't believe in
  953. psychology, I believe in strong moves," we tried to avoid falling into this
  954. trap.  Although tricks might lead to short-lived success, they are sure to
  955. lead into a dead end, as tricks, by definition, contradict general truths,
  956. and will only aggravate a problem inherent in knowledge engineering: That
  957. different rules contradict each other.  Any expert player will recognize the
  958. Go concepts we aim at as belonging to the classic fundamentals of Go lore.
  959.  
  960. Structure of Explorer
  961.  
  962. Explorer's knowledge is represeted internally in four different ways:
  963.  
  964. (1) Relationships among stones on the board are represented by three types of
  965. frames: Blocks, chains, and groups.  Each has eight to thirty slots, filled
  966. by attached procedures at the start of each move decision cycle.
  967.  
  968. (2) Knowledge concerning local urgent Go patterns is implemented as pattern
  969. recognition procedures.
  970.  
  971. (3) Josekis, local urgent moves in a corner opening, are stored separately as
  972. a tree on disk.
  973.  
  974. (4) Knowledge concerning moves to achieve specific goals is scattered in two
  975. dozen move generators in implicit production rule form.
  976.  
  977. Explorer's Go knowledge is the major sourcefor its decision making.  Note
  978. that with the exception of tactical information, Explorer's knowledge is all
  979. derived from the present position.  The move generation and selection process
  980. is shown in Figure 9.
  981.  
  982. Experience and Current Work
  983.  
  984. Reviewing the games Explorer played in the November 1988 International
  985. Computer Go Congress in Taiwan, and in human tournaments in New Jersey and
  986. Oklahoma in early 1989, we observe that our knowledge-based approach to
  987. computer Go is feasible for developing a low-related amateur.  Knowledge is
  988. power: Its knowledge of group safety and block values alone gave Explorer an
  989. advantage over most other Go programs, as reflected in its strong performance
  990. in large scale fighting during the mid game stage, in most cases making end
  991. game play irrelevant to the win/loss results.  As is the case in chess, a
  992. computer's style of playing is different from people's.  Explorer committed
  993. bigger blunders than its human opponents, but often exhibited better
  994. positional understanding than human players of equivalent strength.  Explorer
  995. is now a non-voting member of the American Go Association rated 15 kyu.
  996.  
  997. With that official status it accomplished its purpose as a guinea pig and we
  998. immediately raised our level of ambition.  Ken Chen believes in capturing
  999. crucial Go knowledge.  He redesigned the position analyzer and produced Go
  1000. Intellect, a program with a much improved understanding of Go.  Anders
  1001. Kierulf produced Swiss Explorer, a relatively solid player that improved on
  1002. the components Explorer already had.  In August '89 Go Intellect won the
  1003. North American computer Go championship at Rutgers 4:0,and a week later in
  1004. London Swiss Explorer won the Computer Go Olympiad in a 10-player round-robin
  1005. tournament 8:1.
  1006.  
  1007. Experience with Explorer and its improved successors clearly shows that using
  1008. an additional source of knowledge to advantage is much harder than making the
  1009. additional knowledge available to the system.  Knowledge may backfire--more
  1010. knowledge does not necessarily mean better performance.  Different sources of
  1011. knowledge will suggest different urgent moves that conflict with each other.
  1012. The coordination of all knowledge sources in the system is the hardest
  1013. knowledge engineering task in the Explorer project.
  1014.  
  1015. Some knowledge of importance to human problem solvers amy be of little value
  1016. to a machine.  For example, human players memorize standard corner opening
  1017. sequences, called joseki, because they are safe and save a lot of thinking.
  1018. It is easy to implement such book knowledge, and Explorer has a large joseki
  1019. library on disk [6].  But it takes considerable strategic understanding to
  1020. take advantage of sophisticated opening sequences, and today's programs are
  1021. lacking in this respect.  During computer Go tournament, we turned Explorer's
  1022. joseki option off, in order to increase the chances of middle game strategic
  1023. fighting, where we felt Explorer had an advantage over other programs.
  1024.  
  1025. Almost all Go knowledge is heuristic, and thus imprecise.  We continually
  1026. attempt to refine our programs' knowledge in order to reduce conflicts and
  1027. improve performance, and investigate additional Go concepts that can
  1028. profitably be captured and used.  As computer chess has proven repeatedly,
  1029. game playing is an experimental subject where predictions are difficult.  But
  1030. we believe that an expanded pattern library may capture part of the concepts
  1031. of tesuji and aji, and serve as move generators that focus search on goals
  1032. that would otherwise be lost beyond the horizon.  Explorer had no concept of
  1033. one of the most important aspects of Go: Coordination among several battles,
  1034. as discussed in Section 1.  Synchornization of campaigns is a major extension
  1035. beyond our programs' current structure.  As a step in this direction, we have
  1036. experimented with making use of the concepts of 'sente' and 'gote' in the
  1037. endgame, where most scenes of action are independent [11].
  1038.  
  1039. Tactics is the one aspects of game-playing amenable to exact calculation.
  1040. Explorer's computing power was woefully inadequate for solving tactical
  1041. problems it was aware of.  Improving tactical prowess is an open-ended route
  1042. to a stronger Go program--no inherent limitation can be seen as yet.  Strong
  1043. chess machines use special-purpose hardware to generate and evaluate 100 to
  1044. 1000 times more positions per second than a conventional microprocessor
  1045. could.  We are not aware of any work on Go hardware, but that's an obvious
  1046. approach to investigate.
  1047.  
  1048. What motivates researches to pursue this never-ending race for stronger
  1049. computer players?  Computer game playing is one of the few cases in the fuzzy
  1050. area of knowledge engineering where performance and progress can be measured
  1051. with remarkable accuracy, and the causes that affect performance can be
  1052. identified.  Computer chess, for example, has shown that you do not need to
  1053. understand much about chess at all in order to play at the level of an
  1054. international master, all you have to do is to look at 1 million positions
  1055. per second.  This insight may not generalize beyond chess, but it is an
  1056. impressive statement about the power of computation.
  1057.  
  1058. CONCLUSION
  1059.  
  1060. Computer Go stands today where computer chess was 20 years ago.  Among dozens
  1061. of programs, each one seems to follow its own approach, and the most visible
  1062. characteristics they share are a very low amateur level of play, and a lot of
  1063. hope.  It was impossible, two decades ago, to predict with any degree of
  1064. assurance how far and how fast computer chess would progress, and it is
  1065. impossible today to predict how successful computer Go will be, and what it
  1066. takes to get there.  The only road to insight and progress is hard,
  1067. trial-and-error experimentation.  Explorer is one data point along this road.
  1068. It tackles a difficult issue head on: Can a dumb program make good use of
  1069. classical Go knowledge?
  1070.  
  1071. Acknowledgments.  Thanks to Bill Hargrove, Martin Muller, Monty Newborn, Jim
  1072. Stein, and Ken Thompson for helpful comments.
  1073.  
  1074. REFERENCES
  1075.  
  1076. [1] American Go Association, P.O. Box 397, Old Chelsea Station, New York, NY
  1077. 10113.
  1078.  
  1079. [2] Computer Go.  D.W. Erbach, Ed., 71 Brixford Crescent, Winnipeg, Manitoba
  1080. R2N 1E1, Canada.
  1081.  
  1082. [3] Ishi Press International, 1400 North Shoreline Blvd., Bldg. A7, Mountain
  1083. View, CA 94043.
  1084.  
  1085. [4] Bradley, M.B. The Game of Go--The Ultimate Programming Challenge?
  1086. Creative Computing 5, 3 (Mar. 1979), 89-99.
  1087.  
  1088. [5] Friedenbach, K.J. Abstraction hierarchies: A model of perception and
  1089. cognition in the game of go.  Ph. D. dissertation, Univ. of California, Santa
  1090. Cruz, 1980.
  1091.  
  1092. [6] Ishida, Y. Dictionary of Basic Joseki, Vol. 1, 2, 3.
  1093.  
  1094. [7] Jansen, P. DT as Spraggett's second in Quebec.  Msg on electronic news,
  1095. Feb. 17, 1989.
  1096.  
  1097. [8] Kawabata, Y. The Master of Go.  Perigee Books, NY, 1981.  Originally
  1098. published in Japanese, as 'Meijin', in 1951.
  1099.  
  1100. [9] Kierulf, A. Brand--an Othello Program.  In M.A. Bramer, Ed., Computer
  1101. Game-Playing: Theory and Practice, 197-208, Ellis Horwood, Chicheester, 1983.
  1102.  
  1103. [10] Kierrulf, A. Computer Go Bibliography.  Part 1 in [2] (Winter 1986/87),
  1104. 17-19; part 2 in [2] 1, 3 (Summer 1987), 15-19.
  1105.  
  1106. [11] Kierulf, A. Human-Computer Intersection in the Game of Go.  In
  1107. "Methodologies for Intelligent Systems", Z.W. Ras and M. Zemankova, Eds.,
  1108. North Holland, 1987.
  1109.  
  1110. [12] Kierulf, A., and Nievergelt, J. Computer Go: A smart board and its
  1111. applications.  Go World No. 42, Winter 1985/86, 62-65, Ishi Press, Tokyo.
  1112.  
  1113. [13] Lehner, P.E. Planning in adversity: A computational model of strategic
  1114. planning in the game of go.  Univ. of Michigan, Ph. D. dissertation (1981).
  1115.  
  1116. [14] Levy, D.N.L. (Ed.).  Computer Games II.  Springer Verlag, New York,
  1117. 1988.
  1118.  
  1119. [15' Mano, Y.  An Approach to conquer Difficulties in Developing a Go Playing
  1120. Program.  J. Info. Proc. 7, 2 (1984), 81-88.
  1121.  
  1122. [16] Nunn, J. Life with ChessBase.  ICCA J.  (International Computer Chess
  1123. Association) 11, 2/3 (June/Sept. 1988).
  1124.  
  1125. [17] Reitman, W., and Wilcox, B.  The structure and performance of the
  1126. interim.2 Go program.  In Proceedings of IJCA-6 (Tokyo, August 20-23, 1979),
  1127. 711-719.
  1128.  
  1129. [18] Remus, H.  Simulation of a learning machine for playing Go.  In
  1130. Proceedings of IFIP Congress, North Holland, 1962.
  1131.  
  1132. [19] Ryder, J.L.  Heuristic analysis of large trees as generated in the game
  1133. of Go.  Ph.D. dissertation, Standford Univ., 1971.
  1134.  
  1135. [20] Shannon, C.E.  Programming a computer for playing chess.  Philosophical
  1136. Mag. 41, 314 (1950), 256-275.
  1137.  
  1138. [21] Shirayanagi, K.  A new approach to programming Go--Knowledge
  1139. representation and its refinement.  In Proceedings of the Workshop on New
  1140. Directions in Game-Tree Search (Edmonoton, Canada, May 28-31, 1989).
  1141.  
  1142. [22] Turing, A.M.  Digital computers applied to games.  In Faster than
  1143. Though: A Symposium on Digital Computing Machines?  (B.V. Bowden, Ed.), Ch.
  1144. 25, 286-310, Pitman, London, 1953.
  1145.  
  1146. [23] Wilconx, B. Zobrist's program.  Amer. Go J. 13, 4/6 (1978), 48-51.
  1147.  
  1148. [24] Wilcox, B. Ryder's program.  Amer. Go J. 14, (1979), 23-28.
  1149.  
  1150. [25] Wilcox, B. Reflections on building two Go programs.  SIGART News 94
  1151. (Oct. 1985) 29-43.
  1152.  
  1153. [26] Zobrist, A.L.  Feature extraction and representation for pattern
  1154. recognition and the game of Go.  Ph.D. dissertation, Univ. of Wisconsin
  1155. (1970).
  1156.  
  1157. ANDERS KIERULF is an assistant in computer science at Informatik ETH in
  1158. Zurich.  His research interests include heuristic search and computer game
  1159. playing, user interfaces, algorithms and data structures.  Author's Present
  1160. Address: Informatik, ETH, CH-8092 Zurich, Switzerland.  kierulf@inf.ethz.ch.
  1161.  
  1162. KEN CHEN is associate professor of computer science at the University of
  1163. North Carolina at Charlotte.  His research interests include artificial
  1164. intelligence, in particular heuristic search and computer game playing,
  1165. knowledge-based systems.  Author's Present Address: Dept. of Computer
  1166. Science, University of North Carolina, Charlotte, NC 28223.
  1167. chen@unccvax.uncc.edu.
  1168.  
  1169. JURG NIEVERGELT, professor of computer science, has recently returned to ETH
  1170. Zurich after 4 years as chairman of the Department of Computer Science at the
  1171. University of North Carolina at Chapel Hill.  His research interests include
  1172. algorithms and data structures, and interactive systems.  Author's Present
  1173. Address: Informatik, ETH, CH-8092 Zurich, Switzerland.  jn@inf.ethz.ch.
  1174.  
  1175. Permission to copy without fee all or part of this material is granted
  1176. provided that the copies are not made or distributed for direct commercial
  1177. advantage, the ACM copyright notice and the title of the publication and its
  1178. data appear, and notice is given that copying is by permission of the
  1179. Association for Computing Machinery.  To copy otherwise, or to republish,
  1180. requires a fee and/or specific permission.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.